package org.iamd.domain.data;

import org.iamd.domain.business.ApplicationException;
import org.iamd.util.IMsgKeys;

/**
 * Изключение произлизащо от достъп до репозитори.
 * 
 * @author И. Атанасов
 */
public class DataAccessException extends ApplicationException {

	/** Сериен номер на класа. */
	private static final long serialVersionUID = 5552161757777556663L;

	/**
	 * Конструктор без пораждащо изключение и допълнителни параметри за съобщението.
	 * 
	 * @param key
	 *            ключът, под който се търси текста на изключението
	 */
	public DataAccessException(IMsgKeys key) {
		super(key);
	}

	/**
	 * Конструктор без пораждащо изключение.
	 * 
	 * @param key
	 *            ключът, под който се търси текста на изключението
	 * @param params
	 *            допълнителни параметри за текста на изключението
	 */
	public DataAccessException(IMsgKeys key, Object[] params) {
		super(key, params);
	}

	/**
	 * Конструиране на изключението. Формиране на съобщението за изключение.
	 * 
	 * @param key
	 *            ключът, под който се търси текста на изключението
	 * @param params
	 *            допълнителни параметри за текста на изключението
	 * @param cause
	 *            пораждащо изключение
	 */
	public DataAccessException(IMsgKeys key, Object[] params, Throwable cause) {
		super(key, params, cause);
	}

	/**
	 * Конструктор без допълнителни параметри за съобщението.
	 * 
	 * @param key
	 *            ключът, под който се търси текста на изключението
	 * @param cause
	 *            пораждащо изключение
	 */
	public DataAccessException(IMsgKeys key, Throwable cause) {
		super(key, cause);
	}

}